Delayed Delivery এবং Scheduled Messages

Java Technologies - অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) Advanced Message Delivery Options |
141
141

Delayed Delivery এবং Scheduled Messages অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ)-এ দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা আপনাকে মেসেজগুলিকে নির্দিষ্ট সময় পর প্রেরণ বা গ্রহণ করতে সক্ষম করে। এই বৈশিষ্ট্যগুলি বিভিন্ন ব্যবহারিক ক্ষেত্রে কার্যকর, যেমন ডিলেইড অর্ডার প্রক্রিয়াকরণ, প্ল্যানড টাস্ক এক্সিকিউশন, এবং ট্রানজ্যাকশনাল সিস্টেম যেখানে সময় নির্ধারণ করে কাজ করা প্রয়োজন।

১. Delayed Delivery (ডিলেইড ডেলিভারি)

Delayed Delivery হলো একটি প্রক্রিয়া যেখানে একটি মেসেজ নির্দিষ্ট সময় পরে ডেলিভারি হয়, বা মেসেজটির ডেলিভারি ডিলে করা হয়। এই ফিচারটি ব্যবহৃত হয় যখন আপনি একটি মেসেজের ডেলিভারি নির্দিষ্ট কোনো সময়ের জন্য স্থগিত রাখতে চান।

ডিলেইড ডেলিভারি কনফিগারেশন

অ্যাপাচি অ্যাকটিভএমকিউ তে Delayed Delivery কনফিগার করতে, আপনি মেসেজের প্রপার্টি হিসাবে JMS_deliveryTime সেট করতে পারেন। এতে, মেসেজটি নির্দিষ্ট সময় পর্যন্ত কিউতে স্থিত থাকবে এবং সেই সময় পরে কেবল ডেলিভারি হবে।

Java কোডের মাধ্যমে Delayed Delivery:
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;

public class DelayedMessageProducer {
    public static void main(String[] args) throws JMSException {
        // ActiveMQ কনফিগারেশন
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        Connection connection = connectionFactory.createConnection();
        connection.start();

        // সেশন তৈরি করা
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        // ডেস্টিনেশন তৈরি করা (Queue বা Topic)
        Destination destination = session.createQueue("TEST.QUEUE");

        // মেসেজ প্রডিউসার তৈরি
        MessageProducer producer = session.createProducer(destination);

        // মেসেজ তৈরি
        TextMessage message = session.createTextMessage("Delayed Message");

        // Delayed Delivery এর জন্য deliveryTime প্রপার্টি সেট করা
        long delay = 5000; // 5 সেকেন্ড ডিলে
        producer.setDeliveryDelay(delay);

        // মেসেজ প্রেরণ
        producer.send(message);
        System.out.println("Message Sent with Delay: " + message.getText());

        // সংযোগ বন্ধ করা
        producer.close();
        session.close();
        connection.close();
    }
}

এখানে:

  • producer.setDeliveryDelay(delay);: এই লাইনটি মেসেজটি প্রেরণের আগে 5 সেকেন্ডের ডিলে প্রযোজ্য করবে।
  • delay: এটি সময় (মিলিসেকেন্ড) যা মেসেজের ডেলিভারিতে বিলম্ব করবে।

Delayed Delivery ব্যবহারের সুবিধা:

  • নির্দিষ্ট সময় পর কাজ সম্পাদন: নির্দিষ্ট কোনো কাজ বা প্রক্রিয়া পরবর্তীতে চালানো নিশ্চিত করতে।
  • অর্ডার প্রক্রিয়া বিলম্বিত করা: যেমন, একটি ই-কমার্স সিস্টেমে অর্ডারটি কিছু সময় পর প্রক্রিয়া করা।

২. Scheduled Messages (শিডিউলড মেসেজেস)

Scheduled Messages অ্যাপাচি অ্যাকটিভএমকিউ এর আরেকটি শক্তিশালী বৈশিষ্ট্য, যা মেসেজকে নির্দিষ্ট সময়ে বা নির্দিষ্ট দিন ও সময়ের জন্য শিডিউল করতে দেয়। এটি মূলত timer-based message delivery হিসেবে কাজ করে, যেখানে আপনি সিস্টেমে কোনো নির্দিষ্ট সময়ে মেসেজ পাঠানোর জন্য সেট করতে পারেন।

Scheduled Messages কনফিগারেশন

Scheduled messages তৈরি করতে, আপনি JMS deliveryTime ব্যবহার করেন, যা নির্দিষ্ট সময়ের জন্য মেসেজের ডেলিভারি নির্ধারণ করে।

Java কোডের মাধ্যমে Scheduled Messages:
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;

public class ScheduledMessageProducer {
    public static void main(String[] args) throws JMSException {
        // ActiveMQ কনফিগারেশন
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        Connection connection = connectionFactory.createConnection();
        connection.start();

        // সেশন তৈরি করা
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        // ডেস্টিনেশন তৈরি করা (Queue বা Topic)
        Destination destination = session.createQueue("TEST.QUEUE");

        // মেসেজ প্রডিউসার তৈরি
        MessageProducer producer = session.createProducer(destination);

        // মেসেজ তৈরি
        TextMessage message = session.createTextMessage("Scheduled Message");

        // Scheduled Delivery এর জন্য deliveryTime সেট করা
        long scheduledTime = System.currentTimeMillis() + 10000; // 10 সেকেন্ড পর মেসেজ শিডিউল হবে
        producer.setDeliveryDelay(scheduledTime - System.currentTimeMillis());

        // মেসেজ প্রেরণ
        producer.send(message);
        System.out.println("Message Sent at scheduled time: " + message.getText());

        // সংযোগ বন্ধ করা
        producer.close();
        session.close();
        connection.close();
    }
}

এখানে:

  • setDeliveryDelay(scheduledTime - System.currentTimeMillis()): এটি মেসেজের শিডিউল সময় নির্ধারণ করে এবং সেই অনুযায়ী মেসেজটি ডেলিভারি হবে।

Scheduled Messages ব্যবহারের সুবিধা:

  • টাইম-নির্ধারিত কার্যক্রম: নির্দিষ্ট সময়ে বা পরবর্তীতে কোনো কার্যক্রম শুরু করার জন্য।
  • পুনরাবৃত্ত মেসেজিং: একটি নির্দিষ্ট সময় পর বা নির্দিষ্ট সময়ে নিয়মিত মেসেজ পাঠানোর জন্য ব্যবহৃত হতে পারে (যেমন, বিলিং, বিজ্ঞাপন ইত্যাদি)।

Delayed Delivery এবং Scheduled Messages এর মধ্যে পার্থক্য

বৈশিষ্ট্যDelayed DeliveryScheduled Messages
ব্যবহারমেসেজ পাঠানোর পর কিছু সময়ের জন্য ডিলে করা হয়নির্দিষ্ট সময় বা নির্দিষ্ট দিনে মেসেজ পাঠানো হয়
উদাহরণকিছু সেকেন্ড পরে মেসেজ পাঠানোএকটি নির্দিষ্ট তারিখে বা সময়ে মেসেজ পাঠানো
বিলম্বের সময় নির্ধারণসময় নির্দিষ্ট করা হয়, তবে এটি কার্যকর হলে মেসেজ প্রেরণ হয়একটি নির্দিষ্ট ভবিষ্যৎ সময় নির্ধারণ করা হয়
সাধারণ ব্যবহার ক্ষেত্রঅর্ডার প্রক্রিয়া বিলম্বিত করা, ইভেন্ট সিস্টেমের বিলম্বিত কার্যক্রমশিডিউলড টাস্ক, সপ্তাহিক বা মাসিক রিপোর্ট পাঠানো

সারাংশ

Delayed Delivery এবং Scheduled Messages অ্যাপাচি অ্যাকটিভএমকিউ এর শক্তিশালী মেসেজিং বৈশিষ্ট্য, যা আপনাকে মেসেজের ডেলিভারি সময় নির্ধারণ করতে সাহায্য করে। Delayed Delivery একটি মেসেজের ডেলিভারি বিলম্বিত করে নির্দিষ্ট সময় পরে পাঠায়, যখন Scheduled Messages ভবিষ্যতের কোনো নির্দিষ্ট সময়ে মেসেজ পাঠানোর জন্য কনফিগার করা হয়। এই বৈশিষ্ট্যগুলি ব্যবহৃত হয় টাইম-ক্রিটিক্যাল অ্যাপ্লিকেশনগুলির জন্য, যেমন বিলিং সিস্টেম, পেন্ডিং অর্ডার প্রসেসিং, বা টাস্ক শিডিউলিং সিস্টেমে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion